#include<iostream>
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
using namespace std;

int main(){
    //孤儿进程测试
    pid_t id=fork();

    if(id==0){
        //子进程
        int cnt=500;
        while(cnt){
            cout<<"I am a childprocess,pid:"<<getpid()<<" "<<"ppid:"<<getppid()<<" "<<cnt<<endl;
            cnt--;
            sleep(2);
        }
        exit(0);
    }
    else if(id > 0){
        //父进程
        int cnt=5;
        while(cnt){
            cout<<"I am a parentprocess,pid:"<<getpid()<<" "<<"ppid:"<<getppid()<<endl;
            cnt--;
            sleep(2);
        }

        //父进程先结束
    }
    else{

    }


    //Z状态，僵尸进程测试
    //pid_t id=fork();

    //if(id==0){
    //    //子进程
    //    int cnt=5;
    //    while(cnt){
    //        cout<<"I am a childprocess,pid:"<<getpid()<<" "<<"ppid:"<<getppid()<<" "<<cnt<<endl;
    //        cnt--;
    //        sleep(2);
    //    }
    //    exit(0);
    //}
    //else if(id > 0){
    //    //父进程
    //    while(1){
    //        cout<<"I am a parentprocess,pid:"<<getpid()<<" "<<"ppid:"<<getppid()<<endl;
    //        sleep(2);
    //    }

    //    //父进程并没有针对子进程干任何事情
    //}
    //else{

    //}

    //休眠状态S测试
    //cout<<"Enter:";
    //int a=0;
    //
    //scanf("%d",&a);
    //cout<<"echo:"<<a<<endl;

    //运行状态R测试
    //while(1){

    //}
    
    //暂停状态T测试
    //while(1){
    //    cout<<"hello process"<<endl;
    //    sleep(2);
    //}
    return 0;
}
